#include <iostream>
#include <cstring>
using namespace std;
const int N=60;

int dp[N][N];
int main()
{
	string str;
	cin>>str;
	int n=str.size();
	str=' '+str;
	for(int len=1;len<=n;len++)
	{
		for(int l=1;l+len-1<=n;l++)
		{
			int r=l+len-1;
			if(len==1)
			{
				dp[l][l]=1;
			}
			else if(len==2)
			{
				if(str[l]==str[r])
				{
					dp[l][r]=1;
				}
				else{
					dp[l][r]=2;
				}
			}
			else{
				dp[l][r]=0x3f3f;
				if(str[l]==str[r])
				{
					dp[l][r]=min(dp[l+1][r],dp[l][r-1]);
				}
				else{
					for(int k=l;k<r;k++)
					{
						dp[l][r]=min(dp[l][r],dp[l][k]+dp[k+1][r]);
					}
				}
			}
		}
		
	}
	cout<<dp[1][n]<<endl;
	return 0;
}
